1. Field of the Invention
The present invention relates to the field of data processing systems. Specifically, the present invention relates to a method and system for installing an application in a portable computer system.
2. Related Art
As the components required to build a computer system have reduced in size, new categories of computer systems have emerged. One of the more recent categories of computer systems is the “palmtop” computer system, or personal digital assistant (PDA). A palmtop computer system is a computer that is small enough to be held in the hand of a user and is thus “palm-sized.” As a result, palmtops are readily carried about in a briefcase or purse, and some palmtops are compact enough to fit into a person's pocket. By virtue of their size, palmtop computer systems are also lightweight and so are exceptionally portable and convenient.
The portability and convenience of palmtops has made it increasingly desirable to increase the number and types of applications that can be run on them. It is advantageous to expand the capabilities of a palmtop so that it can provide many of the same, if not the same, services provided by a desktop or laptop computer system, particularly with regard to access to the World Wide Web as well as the ability to communicate with other palmtops and personal computers. As such, information currently available via the Internet over personal computers, such as on-line access to news and financial information, can also be provided via a palmtop. In addition, a palmtop can be used for electronic mail (“e-mail”) and multi-player gaming, and features such as voice recognition can also be added.
It has proven convenient to exchange data and information between a computer system and a palmtop computer using a communication interface, such as a serial or parallel input port. Many palmtop computers also include an infrared communication port for transmitting data over a wireless link (“beaming”). Thus, mechanisms exist for transferring applications and other information from a computer system to a palmtop, or from one palmtop to another. Moreover, the palmtop can be linked to traditional desktop applications such as word processing and spreadsheet programs.
However, with portability and convenience comes a tradeoff in processing power and memory space. The processing problem can be addressed using processors that are smaller and faster than preceding generations, and innovative techniques may also be available to store data and information more densely in smaller places. Still, for a given density of memory space, it is generally necessary to increase the physical size of the memory in order to increase the memory capacity. This is problematic given the preference for ever smaller palmtops or for palmtops that provide further capabilities without an increase in size and weight. Accordingly, when compared to a desktop computer system, a palmtop may be limited with regard to the amount of information it can hold, and hence with regard to the number and types of applications that can be used.
This problem can be aggravated by the size of the operating system needed to support the various applications loaded on the palmtop. As the number and, in particular, the variety of applications increases, the operating system needed to run those applications increases in complexity and correspondingly in size, further exacerbating the memory issue.
The traditional model for generic, limited resource devices such as palmtops is that a memory image is built and installed on the device. The memory image provides a certain set of abstract operating system services for the applications on the device. However, as the application set expands and becomes more diverse, the need for the operating system to grow in size and abstraction becomes more problematic in relation to the resources available in the device.
In addition, many applications today utilize the well-known Component Object Model (COM) software architecture as well as other well-known architectures such as Common Object Request Broker Architecture (CORBA), Distributed COM (DCOM), and Distributed Computing Environment (DCE). COM is based on software objects or modules that are well encapsulated and accessed through interfaces provided by services such as Object Linking and Embedding (OLE) and ActiveX. COM objects can interoperate with other COM components through their interfaces. In this way, COM allows applications to be built from different components.
Thus, with a COM-based architecture, the operating system provides services supporting the execution of an application, in essence building the application by defining and implementing interfaces and modules between its various COM components when the application is called. Accordingly, with COM applications, further complexity is added to the operating system, requiring more coding and hence more memory.
In summary, in order to keep up with consumer demands, it is desirable to expand the capabilities of palmtops and increase the number and type of applications they can execute, as well as the amount of information they can hold. However, this can put a strain on the memory resources of the palmtop. Furthermore, the number and variety of applications can increase the complexity and size of the operating system needed, also straining available memory resources. In addition, software architectures such as COM can increase the size and complexity of the operating system, further adding to the load on available memory. On the other hand, any increase in memory size is constrained by the desire to keep palmtops small and light.